Print layout apparatus and method

ABSTRACT

This invention relates to a technique that prevents an image from falling outside a given range when a printer is controlled to form an image on an arbitrary medium while assuring a margin of a predetermined amount. A host computer shifts an image by only a partial amount of a target margin amount in a predetermined direction within an effective print range of a medium. Furthermore, the host computer controls a printer to form the image by further shifting the image by nearly the remaining amount of the target margin amount so as to form an image within the effective print range. In this way, since the host computer and printer add a margin in two steps, print data can be prevented from falling outside a given range upon processing a binding margin on the printer side.

RELATED APPLICATION

[0001] This application claims priority from and incorporates herein byreference the entire disclosure of Japanese Patent ApplicationNo.2002-007986, filed Jan. 16, 2002.

FIELD OF THE INVENTION

[0002] This invention relates to a print layout technique and, moreparticularly, to a print layout technique which is suitably used in aprint process while assuring a margin such as a binding margin or thelike in a print system which comprises an information processingapparatus such as a personal computer or the like, and a printingapparatus such as a printer or the like.

BACKGROUND OF THE INVENTION

[0003] A conventional binding margin setup process (margin setup) in aprint process by a printer merely shifts the print positions in theright-and-left or up-and-down direction in correspondence with thebinding margin. For this reason, print data may fall outside aneffective print range of a paper sheet depending on the selected bindingmargin. Normally, since print data which falls outside the effectiveprint range is not printed, only an unnatural print result like apartial image can be obtained.

[0004] As one related art of processes for forming a binding margin, aninformation processing apparatus shifts print data by a distancedesignated by the binding margin, reduces the print data so that animage can fall within the effective print range of a paper sheet, andtransfers the shifted and reduced print data to a printing apparatus.Note that the effective print range is a maximum range in which theprinting apparatus can form an image. Since this effective print rangevaries depending on the characteristics of a printing apparatus, itoften varies in each printing apparatus. Hence, a margin cannot benormally formed or an end of an image to be formed is not formed unlessthe characteristics of each printing apparatus are fully considered.

[0005] Nevertheless, since this related art is premised on that theshift and reduction processes of print data associated with the bindingmargin are executed only on the information processing apparatus sideand the printing apparatus does nothing, none of individualcharacteristics of a paper feed process, exhaust process, and the likeof each printing apparatus are reflected. The characteristics of eachprinting apparatus are determined by, e.g., the paper convey directionof each paper sheet, the types of option devices that pertain to thepaper feed and exhaust processes, the mounted states of such optiondevices, and the like. These characteristics greatly influence formationof a margin.

[0006] There are a wide variety of characteristics of printingapparatuses, and also a wide variety of ways in which the margin isused. In addition to the aforementioned binding margin, a margin is usedin a punch, two-fold, Z-fold, or staple process. Such processes are alsostrongly restricted by a printing apparatus and paper feed and exhaustmechanisms attached to that apparatus.

[0007] Since there are a wide variety of characteristics of printingapparatuses, and also a wide variety of ways in which the margin isused, it is very difficult to recognize all combinations of them on theinformation processing apparatus side, and to appropriately form amargin by only a process on the information processing apparatus side.

[0008] Hence, the final layout process of a binding margin must be doneon the printing apparatus side. However, even in such case, image datais preferably avoided from falling outside the effective print range.

[0009] Also, when a print job that includes a plurality of pages withdifferent paper sizes or with different print directions undergoes abinding margin process, there are a great variety of logicalcombinations. Such combinations are determined by various conditions ofthe printing apparatus, and paper feed and exhaust mechanisms, but thebinding method that the user did not intend may be used depending onthese conditions. The user cannot recognize the actual binding method,and can hardly image an output result in association with the bindingmargin setup.

SUMMARY OF THE INVENTION

[0010] Accordingly, it is an object of the present invention to minimizeany change that print data falls outside the effective print range whena binding margin is processed on the printing apparatus side.

[0011] It is another object of the present invention to allow to set abinding margin corresponding to the characteristics of the printingapparatus side by presenting a plurality of binding methods to the userand prompting him or her to select one of them when a print documentconsisting of a plurality of pages with different paper sizes ordifferent print directions is to be sorted.

[0012] In order to achieve the above objects, according to the firstaspect of the present invention, upon forming an image on an arbitrarymedium by an image forming apparatus while assuring a margin of a givenamount, control is made to form a partial amount of the margin by theinformation processing apparatus side and to form the remaining amountof the margin by the printing apparatus side. In this manner, sinceconditions unique to the printing apparatus can be reflected information of the margin, the probability that print data falls outsidethe effective print range can be reduced upon forming the margin.

[0013] According to the second aspect of the present invention, when aplurality of pages with different sizes or different print directions ofpaper sheets are mixed, some possible combinations of binding marginpositions are displayed, one of the displayed combinations isdesignated, and the margin amount is set on the basis of the designatedcombination. Since the user can visually recognize possible combinationsof binding margin positions when a plurality of pages with differentsizes or different print directions of paper sheets are mixed,difficulty in designation of the binding margin position can be relaxed.

[0014] Other features and advantages of the present invention will beapparent from the following description taken in conjunction with theaccompanying drawings, in which like reference characters designate thesame or similar parts throughout the figures thereof.

BRIEF DESCRIPTION OF THE DRAWINGS

[0015] The accompanying drawings, which are incorporated in andconstitute a part of the specification, illustrate embodiments of theinvention and, together with the description, serve to explain theprinciples of the invention.

[0016]FIG. 1 is a block diagram showing the system arrangement accordingto an embodiment of the present invention;

[0017]FIG. 2 is a block diagram that pertains to print processingfunctions of a host computer;

[0018]FIG. 3 is a block diagram that pertains to print processingfunctions in a host computer according to the embodiment;

[0019]FIG. 4 is a flow chart showing the process of a despooleraccording to the embodiment;

[0020]FIG. 5 is a flow chart showing the margin setup process accordingto the embodiment;

[0021]FIG. 6 is a schematic view of a printable range according to theembodiment;

[0022]FIG. 7 shows a layout example of image data according to theembodiment;

[0023]FIG. 8A shows an application example when the binding marginamount is used in a punch process;

[0024]FIG. 8B shows an application example when the binding marginamount is used in a fold process;

[0025]FIG. 8C shows an application example when the binding marginamount is used in a staple process; and

[0026]FIG. 9 shows an example of a binding margin setup window whenvarious paper sheets are used.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0027] Preferred embodiments of the present invention will now bedescribed in detail in accordance with the accompanying drawings.

[0028] [First Embodiment]

[0029]FIG. 1 is a block diagram showing an example of the arrangement ofa printer control system according to an embodiment of the presentinvention. The present invention is not limited to the systemarrangement shown in FIG. 1 as long as the functions of the presentinvention are implemented. For example, the present invention can beequally applied to a standalone apparatus, a system including aplurality of apparatuses, or a system which connects apparatuses via anetwork such as a LAN (Local Area Network), WAN (Wide Area Network), orthe like to execute processes. A computer program according to thepresent invention can be recorded on a magnetic disk such as a FD(Flexible Disk) or the like, or an optical disk such as a CD-ROM(Compact Disk ROM) or the like, and can be supplied to the printercontrol system. Also, the program can be saved in a Web site of theInternet or BBS (Bulletin Board System; a message exchange system usingcomputers), and can be supplied to the printer control system when thatprinter control system establishes connection to such Web site or thelike.

[0030] The printer control system according to this embodiment comprisesa host computer 100 and printer 200. The host computer 100 comprises aCPU 101, RAM 102, ROM 103, keyboard controller (KBC) 105, videocontroller (VDC) 106, disk controller (DC) 107, printer controller(PRTC) 108, keyboard 109, display 110, and external memory 111.

[0031] The printer 200 comprises a CPU 201, RAM 202, ROM 203, input unit205, print unit interface (I/F) 206, memory controller (MC) 207, printerengine 220, console 230, external memory 240, and the like. In thisembodiment, the printer 200 is used as an image forming apparatus.However, the present invention is not limited to this, and can beapplied to a copying machine, facsimile, hybrid machine, and the like aslong as they can form images.

[0032] The arrangement of the respective units of the host computer 100will be described in detail first. The CPU 101 is a central processingunit for systematically controlling respective devices connected to asystem bus 104, and executes a document process of a document thatincludes graphics data, image data, text data, table data (including aspreadsheet), and the like on the basis of a document processing programstored in a program area of the ROM 103 or in the external memory 111.

[0033] The CPU 101 executes a rasterize process of outline fonts on adisplay information RAM assured on, e.g., the RAM 102, and controls thedisplay 110 to display information which is rasterized and stored in thedisplay information RAM via the video controller (VDC) 106. In this way,WYSIWYG (What You See Is What You Get: a function capable of printing animage with a size and shape displayed on the display intact) isachieved. Furthermore, the CPU 101 opens various registered windows andexecutes various data processes in accordance with commands designatedby a mouse cursor (not shown) or the like on the display 110. The useropens a window associated with a print setup and sets a print processingmethod for a printer driver including the setup of the printer 200 andselection of a print mode upon executing a print process using theprinter 200.

[0034] The RAM 102 serves as a main memory, work area, and the like ofthe CPU 101. The ROM 103 is divided into a font area, program area, anddata area. The font area or external memory 111 stores font data and thelike used upon executing the aforementioned document process. Theprogram area or external memory 111 stores a BIOS (Basic Input OutputSystem), operating system (to be referred to as an OS hereinafter), andthe like as control programs of the CPU 101. The data area or externalmemory 111 stores various data used upon executing the aforementioneddocument process.

[0035] The keyboard controller (KBC) 105 controls key inputs from thekeyboard 109 and a pointing device (not shown). The video controller(VDC) 106 controls display of the display 110. The disk controller (DC)107 controls access to the external memory 111. The printer controller(PRTC) 108 is connected to the printer 200 via a two-way interface 150to execute a communication control process with the printer 200. Thekeyboard 109 has various keys. The display 110 displays graphics,images, text, tables, and the like.

[0036] The external memory 111 comprises a hard disk (HD), flexible disk(FD), or the like, and is used as an area for storing a boot program, OS(operating system), various applications, font data, user files, editfiles, printer control command generation program (to be referred to asa printer driver hereinafter), and the like. Note that the externalmemory may comprise a magnetic disk other than the flexible disk andhard disk, an optical disk, a magnetooptical disk, a large-capacitymemory, or the like.

[0037] The aforementioned CPU 101, RAM 102, ROM 103, keyboard controller(KBC) 105, video controller (VDC) 106, disk controller (DC) 107, andprinter controller (PRTC) 108 are arranged on a computer control unit120.

[0038] With the above arrangement, an information processing apparatus(e.g., host computer 100) that controls an image forming apparatus(e.g., printer 200) to form an image on an arbitrary medium whileassuring a margin of a predetermined amount implements a first shiftcomponent (e.g., CPU 101) which shifts the image in a predetermineddirection by a partial amount of the predetermined amount within aneffective print range of the medium, and a second shift component (e.g.,CPU 101 and/or PRTC 108) which further shifts the image by nearly theremaining amount of the predetermined amount to form the image withinthe effective print range.

[0039] The information processing apparatus may be formed to include asetting component which sets a first margin amount (e.g., a targetmargin amount designated by the user) associated with a margin regionassured on a medium, an enlargement/reduction component which enlargesor reduces data associated with an image in accordance with a secondmargin amount (e.g., half the target margin amount) smaller than thefirst margin amount, and a control component which controls the imageforming apparatus to form an image on the medium with a third marginamount obtained via a calculation (e.g., subtraction or the like) of thefirst and second margin amounts.

[0040] Note that the second and third margin amounts may assume anyvalues as long as the first margin region designated by the user isformed, and an image can be prevented from falling outside the effectiveprint range as a result of the print process.

[0041] The apparatus may further comprise a calculation component whichcalculates a printable range which is obtained by reducing the effectiveprint range of the medium in accordance with the second margin amount,and the enlargement/reduction component may enlarge or reduce data sothat the data associated with the image falls within the printablerange. The control component may send to the image forming apparatusinformation associated with a side or direction along which the thirdmargin amount is to be assured.

[0042] Furthermore, the apparatus may further comprise a displaycomponent which displays all or some of possible combinations of bindingmargin positions when a plurality of pages with different paper sizes ordifferent print directions are mixed, and a designation component whichdesignates one of the displayed combinations.

[0043] The arrangement of the respective units of the printer 200 willbe described below. The CPU 201 is a central processing unit forsystematically controlling respective devices connected to a system bus204, and outputs an image signal as output information to the printerengine 220 on the basis of a control program or the like stored in aprogram area of the ROM 203 or a control program or the like stored inthe external memory 240. The CPU 201 can execute a communication processwith the host computer 100 via the input unit 205, and can inform thehost computer 100 of information and the like in the printer 200.

[0044] The RAM 202 serves as a main memory, work area, and the like ofthe CPU 201, and its memory size can be expanded by connecting an optionRAM (not shown) to an expansion port. Note that the RAM 202 is used asan output information rasterize area, environment data storage area,NVRAM, and the like. The ROM 203 is divided into a font area, programarea, and data area. The font area stores font data and the like usedupon generating the output information. The program area stores acontrol program and the like of the CPU 201. The data area storesinformation and the like used on the host computer 100 if no externalmemory 240 (hard disk or the like) is connected to the printer 200. Theexternal memory 240 comprises a hard disk (HD), IC card, or the like,and is connected to the printer 200 as an option. The external memory240 stores font data, an emulation program, form data, and the like, andits access is controlled by the memory controller (MC) 207. Note thatthe number of external memories 240 is not limited to one, but aplurality of external memories may be connected. That is, a plurality ofoption cards in addition to built-in fonts and external memories thatstore programs for interpreting printer control languages of differentlanguage systems may be connected to the printer 200. Furthermore, theexternal memory may have an NVRAM (not shown), and may store printermode setup information input from the console 230.

[0045] The input 205 exchanges data between the printer 200 and hostcomputer 100 via the two-way interface 150. The print unit interface(I/F) 206 exchanges data between the CPU 201 and print engine 220. Thememory controller (MC) 207 controls access to the external memory 240.The print engine 220 executes an actual print operation under thecontrol of the CPU 201, comprises a convey mechanism of print media,semiconductor laser unit, photosensitive drum, developing unit, fixingunit, drum cleaning unit, separation unit, and the like (none of themare shown), and prints image by a known electrophotography process. Theconsole 230 comprises switches for various operations, a display unit(e.g., an LED display), and the like.

[0046] The aforementioned CPU 201, RAM 202, ROM 203, input unit 205,print unit interface (I/F) 206, and memory controller (MC) 207 arearranged on a printer control unit 210.

[0047]FIG. 2 is a block diagram showing the arrangement of a typicalprint process in the host computer 100 to which a printing apparatussuch as a printer or the like is connected directly or via a network.Referring to FIG. 2, an application 301, graphic engine 302, printerdriver 303, and system spooler 304 are program modules, and are storedas files in the external memory 111. Upon executing a given programmodule, the program module is loaded onto the RAM 102 by the OS oranother module which uses that module, and is then executed. Theapplication 301 and printer driver 303 can be added to an HD as anotherexternal memory 111 via an FD or CD-ROM as one of the external memories111 or a network (not shown).

[0048] The application 301 saved in the external memory 111 is loadedonto the RAM 102, and is executed. When a print instruction is issuedfrom the application 301 to the printer 200, an output (rendering)process is done using the graphic engine 302 which is similarly loadedonto the RAM 102 and is ready to be executed. The graphic engine 302similarly loads a printer driver 303 prepared for each printingapparatus from the external memory 111 onto the RAM 102, and sets theoutput from the application 301 in the printer driver 303. Furthermore,a GDI (Graphic Device Interface) function received from the application301 is converted into a DDI (Device Driver Interface) function, which isoutput to the printer driver 303.

[0049] The printer driver 303 converts the DDI function received fromthe graphic engine 302 into a control command, e.g., PDL (PageDescription Language) that the printer can interpret. The convertedprinter control command is passed to the system spooler 304 which isloaded onto the RAM 102 by the OS. The system spooler 304 outputs theprinter control command to the printer 200 as print data via theinterface 150.

[0050] The printer control system according to this embodiment furthercomprises an arrangement for temporarily spooling print data from theapplication as intermediate code data, as shown in FIG. 3, in additionto the print system which comprises the host computer 100 and printer200 shown in FIGS. 1 and 2. The system shown in FIG. 3 is obtained byexpanding the system shown in FIG. 2, and has an arrangement thattemporarily generates a spool file 403 of an intermediate code uponsending a print command from the graphic engine 302 to the printerdriver 303.

[0051] In the system shown in FIG. 2, the application 301 is releasedfrom the print process after the printer driver 303 has converted allprint commands from the graphic engine 302 into control commands of theprinter 200. By contrast, in the system shown in FIG. 3, the application301 is released from the print process when a spooler 402 has convertedall print commands into intermediate code data, and output them to thespool file 403. Normally, the latter process requires a shorter timethan the former process. In the system shown in FIG. 3, the contents ofthe spool file 403 can be processed. As a result, functions such as anenlargement/reduction function, an N-up print function for printing aplurality of pages on one page in a reduced scale, and the like, thatthe application does not have can be implemented for print data from theapplication. For these purposes, the system is expanded to be able tospool as intermediate code data, as shown in FIG. 3, with respect to thesystem shown in FIG. 2.

[0052] In order to process print data, the user must make setups from awindow provided by the printer driver 303, which must save the setupcontents on the RAM 102 or external memory 111.

[0053] Details of FIG. 3 will be explained below. As shown in FIG. 3, inthe expanded processing system, a print command from the graphic engine302 is received by a dispatcher 401. If the dispatcher 401 determinesthat this print command is a print command issued from the application301 to the graphic engine 302, it loads the spooler 402 stored in theexternal memory 111 onto the RAM 102, and sends the print command to thespooler 402 in place of the printer driver 303.

[0054] The spooler 402 converts the received print command into anintermediate code, and outputs it to the spool file 403. Also, thespooler 402 acquires processing setups associated with print data, whichare set in the printer driver 303, from the printer driver 303, andsaves them in the spool file 403. Note that the spool file 403 isgenerated as a file on the external memory 111, but may be generated onthe RAM 102, as is easily understood by those who are skilled in theart. Furthermore, the spooler 402 loads a spool file manager 404 storedon the external memory 111 onto the RAM 102, and informs the spool filemanager 404 of the generation state of the spool file 403. After that,the spool file manager 404 checks based on the processing setup contentssaved in the spool file 403 if the printer driver 303 can generate printdata. The spool file 403 manages intermediate data for respectivelogical pages, as pages output from the application. Furthermore, thespool file 403 also manages processing setups that the user has set inthe printer driver 303, e.g., a margin print setup (rendering data isshifted and printed in an equal or reduced scale on a paper sheet of onepage), and the like. Upon determining whether or not the printer driver303 can generate print data, if all required logical pages are managedon the spool file 403 on the basis of the processing setups stored inthe spool file 403, since data required to generate print data have beenprepared, it can be determined that print data can be generated.

[0055] When the spool file manager 404 determines that the printerdriver can generate print data using the graphic engine 302, it loads adespooler 405 stored in the external memory 111 onto the RAM 102, andinstructs the despooler 405 to execute a print process of intermediatedata described in the spool file 403. At this time, the spool filemanager 404 also instructs influence information on logical pages uponthe processing setups to the despooler 405.

[0056] For example, if a margin print setup has been made, the spoolfile manager 404 calculates position information indicating the printposition of each logical page on a physical page, and size informationindicating the size of each logical page on a physical page, andinstructs influence information that contains the position informationand size information to the despooler 405 for each logical page. Notethat the position information calculation method will be described laterusing FIGS. 5 and 6.

[0057] The despooler 405 processes an intermediate code contained in thespool file 403 in accordance with the contents of the influenceinformation instructed by the spool file manager 404, converts theprocessed intermediate data into a GDI function, and outputs it to thegraphic engine 302.

[0058] The despooler 405 makes the following processes. The despooler405 re-calculates the position and size of print data to be renderedwithin a logical page on a physical page on the basis of the logicalpage acquired from the spool file 403 and the influence informationacquired from the spool file manager 404. For example, when an image isto be formed on a physical page while assuring a margin, the data sizeis changed in accordance with the stored margin setup. If margins ofdifferent amounts are to be assured on the right, left, upper, and lowersides, a margin amount half the maximum one of the margins to be assuredon the four sides is calculated. According to this calculated marginamount, the respective sides of a rectangle bounded by the effectiveprint range are shifted inwardly. A rectangle formed by shifting servesas a printable range. Within this printable range, print data can belaid out. Print data is reduced to a size that can fall within thisprintable range. In this embodiment, the margin amount is set to be ½the maximum margin for the sake of simplicity. However, the presentinvention is not limited to such specific value, and this value may bechanged. The despooler 405 converts intermediate data processed in thisway into a GDI function, and outputs it to the graphic engine 302. Withthe above process, half the margin designated by the user can beobtained. In this connection, the remaining half margin is formed bysending an instruction to the printer 200. In this embodiment, a marginis formed in two stages, but may be formed in three or more stages.

[0059] The graphic engine 302 generates a DDI function based on the GDIfunction received from the despooler 405, and outputs a print commandconsisting of the DDI function to the dispatcher 401. If this printcommand is a print command of a GDI function, which has been issued fromthe despooler 405 to the graphic engine 302, the dispatcher 401 sendsthe print command to the printer driver 303 in place of the spooler 402.The printer driver 303 generates print data consisting of a printercontrol command on the basis of the received print command, and outputsthe print data to the printer 200 via the system spooler 304.

[0060] A general process of the despooler 405 in the printer controlsystem according to this embodiment with the aforementioned arrangementwill be described in detail below mainly with reference to the flowcharts shown in FIGS. 4 and 5. FIG. 4 is a flow chart showing theprocessing flow of the despooler 405. For the sake of simplicity, thefollowing explanation will be given under the condition that processingsetups other than the margin setup are not made. Of course, theprocessing setup of this embodiment may be combined with otherprocessing setups.

[0061] In step S501, parameters such as an enlargement/reduction factor,the shift amount and direction of a rendering position, and the like,which are used in layout, are initialized. As initial values, anenlargement/reduction factor that indicates an equal magnification, anda rendering position free from any shift are preferably set. Since alayout process according to this embodiment is an optional processselected by the user, parameters for a normal process, which is to beexecuted frequently, are set as defaults, thus reducing the number oftimes of change in parameter setup.

[0062] In step S502, an intermediate code contained in the spool file403 is read.

[0063] In step S503, the read intermediate code is processed to printdata according to the processing setup contents contained in the spoolfile 403. Furthermore, a rendering command is output to the graphicengine 302 again.

[0064] It is checked in step S504 if all intermediate codes have beenoutput, i.e., rendering is complete. As a result of checking, ifrendering is complete, the processing ends; if intermediate codes to beoutput still remain, the flow returns to step S502 to process the nextintermediate code.

[0065]FIG. 5 is a flow chart showing the flow of the margin setupprocess as the core of this embodiment, and shows details of step S503in FIG. 4.

[0066] In step S601, the type of intermediate code read in step S502 ischecked. If the intermediate code is a margin parameter, the flowadvances to step S602; otherwise, the flow advances to step S606.

[0067] In step S602, a margin parameter is acquired from the spool file403.

[0068] In step S603, a range obtained by shifting the respective sidesof an effective print range (normally, a rectangle) of the currentlyused paper size inwardly by an amount half the margin amount acquired instep S602 is obtained as a printable range.

[0069]FIG. 6 shows the calculation concept upon calculating theprintable range in step S603. FIG. 6 shows a case wherein a margin of atarget margin amount (m) is to be formed along the left side. In aninitial stage, a range inside the respective sides of the effectiveprint range by half (m/2) the target margin amount m irrespective ofupper, lower, right, and left positions is calculated as a printablerange.

[0070] Note that a margin normally indicates a margin from the edge ofthe effective print range, as shown in FIG. 6, and it may also mean amargin from the edge of a physical paper sheet. In the followingdescription of this embodiment, a margin indicates the former one. Ifthe latter margin is taken into consideration in the present invention,the former margin is obtained by defining a new “margin” by subtractingthe distance from the edge of a physical paper sheet to the edge of theeffective print range from the set margin. In the latter case, if thedistance from the edge of a physical paper sheet to the edge of theeffective print range is equal to the amount set as a margin, the“margin” is zero.

[0071] In step S604, a maximum enlargement/reduction factor at which theaspect ratio remains the same is calculated by comparing the printablerange calculated in step S603 with the effective print range of a papersheet to be used, so that print data can be printed within the printablerange to have a maximum size without being distorted. Furthermore, instep S604 a print position in the printable range is determined on thebasis of the enlargement/reduction factor and print data. Since theaspect ratio of the enlargement/reduction factor remains the same, aslight blank space may be formed in the up-and-down or right-and-leftdirection. This space may be used in various ways. For example, an imageto be formed may be simply laid out at the upper left position of theprintable range, or may be laid out at the center of the printablerange. The layout position of an image is set by the user using theprinter driver. In this manner, the enlargement/reduction factor andprint position are determined.

[0072] In step S605, a print environment setup command set with theremaining half margin amount (m/2) which is not processed yet is sent tothe graphic engine. Of course, the printer driver 303 converts thisprint environment setup command into a printer command that the printer200 can interpret, and the print command is sent to the printer 200.Upon receiving this command, the printer 200 shifts the correspondingpage by the designated amount in the designated direction and printsthat page. For example, in the example in FIG. 6, an instruction isissued to print a page while shifting it by m/2 to the right.

[0073] On the other hand, if it is determined in step S601 that theintermediate code is other than a margin parameter, the flow advances tostep S606. In step S606, print data is acquired from the spool file 403.In step S607, the print data as the acquired intermediate code isconverted into a rendering command or print control command. It ischecked in step S608 if the converted rendering command or print controlcommand is influenced by layout parameters. If the command is influencedby layout parameters, the flow advances to step S609, and a parameterthat requires layout conversion undergoes layout conversion using thelayout parameters determined in step S604. This layout conversionrequires an enlargement/reduction function, and a rendering positionshift function. After the aforementioned processes, the renderingcommand or print control command is sent to the graphic engine in stepS610.

[0074]FIG. 7 is a schematic view for explaining how to lay out imagedata on the effective print range. An original image is reduced andshifted by the despooler 405 to fall within the printable range. At thistime, half the set margin is reflected. Furthermore, this image data isshifted by the remaining half margin amount in the designated directionin the printer 200. In these two steps, the target margin m of user'schoice can be added to a print.

[0075] That is, according to this embodiment, the printable range isformed by narrowing all the upper, lower, right, and left sides of theeffective print range by half the designated margin, print data that hasbeen enlarged/reduced to fall within the printable range is rendered,and the printer 200 adds the remaining half margin. As a result, sinceno rendering takes place outside the effective print range, an image canbe prevented from being interrupted by the set margin.

[0076] In the above description, a simple margin has been explained.This margin may be a margin amount upon punching holes, or may be amargin position upon two- or Z-folding a paper sheet, or may be a marginamount upon stapling paper sheets.

[0077]FIGS. 8A to 8C show layout examples when the binding margin amountis used for purposes other than a margin. Upon stapling a paper sheet inFIG. 8C, the printer 200 shifts an image in two directions, i.e., rightand lower directions. In this invention, since rendering is done only ina range obtained by narrowing the effective print range by half the setmargins in the upper, lower, right, and left directions, even when theprinter 200 shifts the image by the remaining margin amounts in aplurality of directions, rendering is never done outside the effectiveprint range.

[0078] As described above, according to this embodiment, an image can beprevented from falling outside the effective print range irrespective ofthe binding margin positions depending on various mechanical conditionsof the printing apparatus side.

[0079] [Second Embodiment]

[0080] When a binding margin is added to a print job consisting of pageswith a plurality of paper sizes and print directions, variouscombinations are logically available. Since these combinations aredetermined based on various conditions of the printer 200, and paperfeed and exhaust mechanisms, a binding method that the user did notintend may be selected in some situations.

[0081] Hence, by providing a setup window which limits combinations ofpaper sizes and their binding methods to some extent, and displays themto the user, data can be output in a combination of user's choice.

[0082]FIG. 9 shows an example of a binding margin setup window whenvarious paper sheets are used. As shown in FIG. 9, if combinations ofpaper sheets are limited (e.g., only a combination of A4 and A3 sheets),when the print directions (landscape, portrait) and binding marginpositions of respective paper sheets are displayed as examples, the userselects a combination of paper sheets, print directions, and bindingmargins from selectable combinations, thus setting a binding marginposition of his or her choice. In this example, the directions(up-and-down and right-and-left directions) of images to be printed onA4 portrait and A3 landscape pages, and A4 landscape and A3 portraitpages are adjusted in identical directions. When a two-sided printfunction is available, the user can easily image a pattern uponadjusting prints by displaying the up-and-down relationship uponprinting reverse faces.

[0083] [Another Embodiment]

[0084] Note that the present invention may be applied to either a systemconstituted by a plurality of devices (e.g., a host computer, interfacedevice, reader, printer, and the like), or an apparatus consisting of asingle equipment (e.g., a copying machine, facsimile apparatus, or thelike).

[0085] The objects of the present invention are also achieved bysupplying a storage medium (or recording medium), which records aprogram code of a software program that can implement the functions ofthe above-mentioned embodiments to the system or apparatus, and readingout and executing the program code stored in the storage medium by acomputer (or a CPU or MPU) of the system or apparatus. In this case, theprogram code itself read out from the storage medium implements thefunctions of the above-mentioned embodiments, and the storage mediumwhich stores the program code constitutes the present invention. Thefunctions of the above-mentioned embodiments may be implemented not onlyby executing the readout program code by the computer but also by someor all of actual processing operations executed by an operating system(OS) running on the computer on the basis of an instruction of theprogram code.

[0086] Furthermore, the functions of the above-mentioned embodiments maybe implemented by some or all of actual processing operations executedby a CPU or the like arranged in a function extension card or a functionextension unit, which is inserted in or connected to the computer, afterthe program code read out from the storage medium is written in a memoryof the extension card or unit.

[0087] When the present invention is applied to the storage medium, thatstorage medium stores program codes corresponding to the flow chartsshown in FIGS. 4 and 5 mentioned above.

[0088] According to the present invention, since control is made to forma partial amount of a required margin on the information processingapparatus side and to form the remaining margin on the printingapparatus side, conditions unique to each printing apparatus can betaken into consideration. Hence, an image can be prevented from fallingoutside the effective print range irrespective of the binding marginpositions depending on various mechanical conditions of the printingapparatus side.

[0089] Some typical patterns of binding margin positions upon setting abinding margin in a print job that includes a plurality of paper sizesor a plurality of print directions are presented, and the user selectsone of these patterns. Hence, the user can easily image a layout uponbinding print results.

[0090] The present invention is not limited to the above embodiments andvarious changes and modifications can be made within the spirit andscope of the present invention. Therefore, to apprise the public of thescope of the present invention, the following claims are made.

What is claimed is:
 1. An information processing apparatus forcontrolling an image forming apparatus to form an image on an arbitrarymedium while assuring a margin of a given amount, comprising: a firstshift component for shifting the image by a partial amount of thepredetermined amount in a predetermined direction within an effectiveprint range of the medium; and a second shift component for furthershifting the image by approximately the remaining amount of thepredetermined amount so as to form the image within the effective printrange.
 2. The apparatus according to claim 1, wherein said second shiftcomponent includes a control component for instructing and controllingthe image forming apparatus to form the image by further shifting byapproximately the remaining amount of the predetermined amount.
 3. Theapparatus according to claim 1, wherein the margin of the predeterminedamount is a margin associated with a binding margin, punch process,two-fold process, Z-fold process, or stapling process.
 4. An imageformation control method for controlling an image forming apparatus toform an image on an arbitrary medium while assuring a margin of a givenamount, comprising the steps of: shifting the image by a partial amountof the predetermined amount in a predetermined direction within aneffective print range of the medium; and controlling the image formingapparatus to form the image by further shifting the image byapproximately the remaining amount of the predetermined amount so as toform the image within the effective print range.
 5. The method accordingto claim 4, wherein the margin of the predetermined amount is a marginassociated with a binding margin, punch process, two-fold process,Z-fold process, or stapling process.
 6. An information processingapparatus for controlling an image forming apparatus to form an image onan arbitrary medium after executing a layout process in advance,comprising: a setting component for setting a first margin amountassociated with a margin area to be assured on the medium; anenlargement/reduction component for enlarging or reducing dataassociated with the image in accordance with a second margin amountsmaller than the first margin amount; and an instruction component forinstructing the image forming apparatus to form the image on the mediumon the basis of the enlarged or reduced data to have a third marginamount obtained by a calculation using the first and second marginamounts.
 7. The apparatus according to claim 6, wherein the first marginamount is a margin amount associated with a binding margin, punchprocess, two-fold process, Z-fold process, or stapling process.
 8. Theapparatus according to claim 6, wherein the second margin amount isapproximately half the first margin amount.
 9. The apparatus accordingto claim 6, further comprising: a calculation component for calculatinga printable range, which is reduced in accordance with the second marginamount, from an effective print range of the medium, and wherein saidenlargement/reduction component executes enlargement or reduction so asto make the data associated with the image fall within the printablerange.
 10. The apparatus according to claim 6, wherein said instructioncomponent gives to the image forming apparatus instruction informationassociated with a side or direction in which the third margin amount isto be assured.
 11. An image formation control method for controlling animage forming apparatus to form an image on an arbitrary medium afterexecuting a layout process in advance, comprising the steps of: settinga first margin amount associated with a margin area to be assured on themedium; enlarging or reducing data associated with the image inaccordance with a second margin amount smaller than the first marginamount; and controlling the image forming apparatus to form the image onthe medium on the basis of the enlarged or reduced data to have a thirdmargin amount obtained by a calculation using the first and secondmargin amounts.
 12. The method according to claim 11, wherein the firstmargin amount is a margin amount associated with a binding margin, punchprocess, two-fold process, Z-fold process, or stapling process.
 13. Themethod according to claim 11, wherein the second margin amount isapproximately half the first margin amount.
 14. The method according toclaim 11, further comprising the step of calculating a printable range,which is reduced in accordance with the second margin amount, from aneffective print range of the medium, and wherein theenlargement/reduction step includes the step of executing enlargement orreduction so as to make the data associated with the image fall withinthe printable range.
 15. The method according to claim 11, wherein thecontrol step includes the step of instructing the image formingapparatus in information associated with a side or direction in whichthe third margin amount is to be assured.
 16. A print layout apparatusfor determining a layout of a paper sheet which is to undergo a printprocess, comprising: a setting component for setting a binding margin ofthe paper sheet which is to undergo the print process; a calculationcomponent for calculating a printable range by subtracting an amount ½the set binding margin from respective sides of an effective print rangeon each paper sheet which is to undergo the print process; anenlargement/reduction component for enlarging/reducing print data incorrespondence with the printable range; a layout component for layingout the enlarged/reduced print data on the printable range andcontrolling a print process; and an instruction component forinstructing a printing apparatus in an amount ½ the set binding margin.17. The apparatus according to claim 16, further comprising: a displaycomponent for displaying some possible combinations of binding marginpositions when a plurality of pages having different paper sizes or aplurality of pages having different paper directions mix; and adesignation component for designating one of the displayed combinations,and wherein said setting component sets the binding margin on the basisof the designated combination.
 18. A storage medium that stores acomputer program for controlling an image forming apparatus to form animage on an arbitrary medium while assuring a margin of a given amount,said program comprising: a module for shifting the image by a partialamount of the predetermined amount in a predetermined direction withinan effective print range of the medium; and a module for furthershifting the image by approximately the remaining amount of thepredetermined amount so as to form the image within the effective printrange.
 19. A storage medium that stores a computer program forcontrolling an image forming apparatus to form an image on an arbitrarymedium after executing a layout process in advance, said programcomprising: a module for setting a first margin amount associated with amargin area to be assured on the medium; a module for enlarging orreducing data associated with the image in accordance with a secondmargin amount smaller than the first margin amount; and a module forinstructing the image forming apparatus to form the image on the mediumon the basis of the enlarged or reduced data to have a third marginamount obtained by a calculation using the first and second marginamounts.